package com.qi.uitil;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author zjq
 * @version 1.0
 * @date 2021/12/7 21:28
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GeneralmarkParser { //通用标记处理器
    //    private String startMark;
    //    private String endtMark;
    //    private MarkBody markBody;
    //    private String markBody;
    private String conditionParam;


    /**
     * 解析${}和#{}
     * 处理标志位
     * #{username}
     * ${username}
     *
     * @return 处理后的条件参数
     */
    public String handler() {
//        if (sqlText==null||sqlText.isEmpty()){
//            return null;
//        }
//        sqlText.trim().toLowerCase(Locale.ROOT);
//        boolean isWhereExist = sqlText.contains("where");
//        if (isWhereExist){
//            String markBody = StrUtil.subBetween(sqlText, startMark, endtMark);
//            StringBuilder builder = new StringBuilder();
//            for (int i=0;i<sqlText.length();i++){
//                builder.append(sqlText.charAt(i));
//                if (sqlText.charAt(i)==61){
//                    break;
//                }
//            }
//            return builder.append(markBody).toString();
//        }
//        return sqlText;
        if (conditionParam == null || conditionParam.isEmpty()) {
            return null;
        }
        if (conditionParam.contains("#{") && conditionParam.contains("}")) {
            String markBody = StrUtil.subBetween(conditionParam, "#{", "}");
            return markBody;
        } else if (conditionParam.contains("${") && conditionParam.contains("}")) {
            String markBody = StrUtil.subBetween(conditionParam, "${", "}");
            return markBody;
        }
        return null;
    }
}
